package cn.com.blueInfo.bpm.number.entity;

import cn.com.blueInfo.bpm.common.entity.BaseEntity;
import cn.com.blueInfo.bpm.number.enums.NumberRuleComponentType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 编号规则组成配置表
 * @author suxch
 * @since 2025-08-24 01:39:05
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "mc_bsn_number_rule_component", autoResultMap = true)
@Schema(description = "编号规则组成配置表")
public class NumberRuleComponent extends BaseEntity {

    /** ID */
    @TableId(type = IdType.INPUT)
    @Schema(description = "ID")
    private Long id;
    /** 规则主表ID */
    @Schema(description = "规则主表ID")
    private Long ruleId;
    /** 组成部分类型：FIXED-固定字符，DATE-日期，SERIAL-流水号，ORG_CODE-组织编码，USER_CODE-员工编码 */
    @Schema(description = "组成部分类型：FIXED-固定字符，DATE-日期，SERIAL-流水号，ORG_CODE-组织编码，USER_CODE-员工编码")
    private NumberRuleComponentType componentType;
    /** 组成内容（根据类型动态填写） */
    @Schema(description = "组成内容（根据类型动态填写）")
    private String componentContent;
    /** 该组成部分的固定长度 */
    @Schema(description = "该组成部分的固定长度")
    private Byte length;

}
